package cn.zhaoguang.usedcar.common.util;

import cn.hutool.crypto.SecureUtil;

import java.util.UUID;

/**
 * @Description
 * @Author zhaoguang
 * @Date 2021/3/19 20:43
 */
public class PasswordUtil {

    /**
     * @Description 匹配密码
     * @Author zhaoguang
     * @Param salt 加密盐
     * @Param rawPass 前端传来RSA加密后的密码
     * @Param encPass 数据库MD5加密后的密码
     */
    public static boolean matches(String salt, String rsaPassword, String databasePassword) {
        try {
            //解密
            String decodePassword = RsaEncryptUtil.privateKeyDecrypt(rsaPassword);
//            System.out.println("解密RSA后的密码：" + decodePassword);
            String password = encode(salt, decodePassword);
//            System.out.println("RSA解密后又MD5加密后的密码：" + password + " 数据库密码：" + databasePassword);
            return password.equals(databasePassword);
        }catch (Exception e){
            return false;
        }

    }

    /**
     * @Description MD5加密
     * @Author zhaoguang
     */
    public static String encode(String salt, String rawPass) {
        String password = rawPass + "{" + salt + "}";

        return SecureUtil.md5(password);
    }

    /**
     * @Description 获取加密盐，长度为10
     * @Author zhaoguang
     */
    public static String getSalt() {
        return UUID.randomUUID().toString().replaceAll("-", "").substring(0, 10);
    }
}
